{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "%matplotlib inline\n",
    "from matplotlib import pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(100)\n",
    "x=np.linspace(-1,1,100).reshape(100,1)\n",
    "y=3*np.power(x,2)+2+0.2*np.random.rand(x.size).reshape(100,1)\n",
    "plt.scatter(x,y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "w1=np.random.rand(1,1)\n",
    "b1=np.random.rand(1,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.77828922]])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "w1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.7795984]])"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "lr=0.001"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "all_loss=[]\n",
    "for i in range(800):\n",
    "    y_pred=np.power(x,2)*w1+b1\n",
    "    loss=0.5*(y_pred-y)**2\n",
    "    loss=loss.sum()\n",
    "    all_loss.append(loss)\n",
    "    \n",
    "    grad_w=np.sum((y_pred-y)*np.power(x,2))\n",
    "    grad_b=np.sum((y_pred-y))\n",
    "    \n",
    "    w1-=lr*grad_w\n",
    "    b1-=lr*grad_b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[237.14476456081945,\n",
       " 188.88956256048243,\n",
       " 150.85509485520308,\n",
       " 120.8698114945957,\n",
       " 97.22365185495971,\n",
       " 78.56996891708403,\n",
       " 63.848296628378634,\n",
       " 52.22353076979917,\n",
       " 43.03803512382301,\n",
       " 35.773926054014076,\n",
       " 30.023372376622376,\n",
       " 25.465207111588562,\n",
       " 21.846509710170857,\n",
       " 18.968102431800435,\n",
       " 16.673129033837327,\n",
       " 14.838060720046194,\n",
       " 13.365613505954638,\n",
       " 12.179170786143338,\n",
       " 11.218391217460722,\n",
       " 10.4357500144402,\n",
       " 9.793815287864732,\n",
       " 9.263103214883929,\n",
       " 8.820389027231194,\n",
       " 8.447376946949815,\n",
       " 8.129652786008323,\n",
       " 7.855859138006587,\n",
       " 7.617045856653011,\n",
       " 7.406158569036152,\n",
       " 7.2176358885164245,\n",
       " 7.047092226384688,\n",
       " 6.891068010835588,\n",
       " 6.746832987856629,\n",
       " 6.612231323072493,\n",
       " 6.485559621017254,\n",
       " 6.365470866237125,\n",
       " 6.250898777332646,\n",
       " 6.140998235800371,\n",
       " 6.035098373476695,\n",
       " 5.932665628397425,\n",
       " 5.833274650605822,\n",
       " 5.736585389658685,\n",
       " 5.642325050116988,\n",
       " 5.55027388049791,\n",
       " 5.460253981022052,\n",
       " 5.372120488622386,\n",
       " 5.285754634020001,\n",
       " 5.201058273035638,\n",
       " 5.1179495788527785,\n",
       " 5.036359648526966,\n",
       " 4.956229829465734,\n",
       " 4.877509612890526,\n",
       " 4.8001549738050135,\n",
       " 4.724127062597332,\n",
       " 4.649391173565779,\n",
       " 4.575915931534758,\n",
       " 4.503672650230601,\n",
       " 4.432634825932881,\n",
       " 4.362777737670071,\n",
       " 4.294078131334164,\n",
       " 4.226513969896894,\n",
       " 4.160064235696504,\n",
       " 4.094708773745554,\n",
       " 4.030428167358324,\n",
       " 3.9672036392452212,\n",
       " 3.9050169726778057,\n",
       " 3.8438504484744382,\n",
       " 3.7836867944597143,\n",
       " 3.7245091447616967,\n",
       " 3.6663010068710515,\n",
       " 3.6090462348269825,\n",
       " 3.552729007242287,\n",
       " 3.4973338091530874,\n",
       " 3.442845416894311,\n",
       " 3.3892488853714577,\n",
       " 3.3365295372328054,\n",
       " 3.2846729535512993,\n",
       " 3.2336649657082703,\n",
       " 3.1834916482362763,\n",
       " 3.1341393124297965,\n",
       " 3.0855945005728613,\n",
       " 3.0378439806646895,\n",
       " 2.9908747415493875,\n",
       " 2.9446739883755497,\n",
       " 2.8992291383272355,\n",
       " 2.854527816579947,\n",
       " 2.8105578524449744,\n",
       " 2.767307275673076,\n",
       " 2.7247643128943713,\n",
       " 2.6829173841761973,\n",
       " 2.641755099684243,\n",
       " 2.6012662564353324,\n",
       " 2.561439835132465,\n",
       " 2.5222649970745965,\n",
       " 2.483731081135037,\n",
       " 2.4458276008035127,\n",
       " 2.408544241287849,\n",
       " 2.3718708566718743,\n",
       " 2.335797467126776,\n",
       " 2.300314256173557,\n",
       " 2.2654115679945903,\n",
       " 2.231079904792545,\n",
       " 2.1973099241952028,\n",
       " 2.164092436704822,\n",
       " 2.131418403190917,\n",
       " 2.09927893242532,\n",
       " 2.0676652786586374,\n",
       " 2.036568839237153,\n",
       " 2.005981152259338,\n",
       " 1.9758938942712363,\n",
       " 1.9462988779999202,\n",
       " 1.917188050124366,\n",
       " 1.8885534890830133,\n",
       " 1.8603874029174123,\n",
       " 1.8326821271512967,\n",
       " 1.8054301227044667,\n",
       " 1.7786239738408962,\n",
       " 1.7522563861505,\n",
       " 1.7263201845639622,\n",
       " 1.7008083114000956,\n",
       " 1.6757138244451864,\n",
       " 1.651029895063775,\n",
       " 1.6267498063403931,\n",
       " 1.6028669512516993,\n",
       " 1.5793748308685398,\n",
       " 1.5562670525874416,\n",
       " 1.5335373283910358,\n",
       " 1.5111794731369643,\n",
       " 1.489187402874762,\n",
       " 1.4675551331903125,\n",
       " 1.4462767775773562,\n",
       " 1.4253465458356755,\n",
       " 1.4047587424954668,\n",
       " 1.3845077652675102,\n",
       " 1.3645881035186758,\n",
       " 1.3449943367723896,\n",
       " 1.325721133233625,\n",
       " 1.3067632483380325,\n",
       " 1.2881155233247952,\n",
       " 1.2697728838328513,\n",
       " 1.2517303385200673,\n",
       " 1.233982977705007,\n",
       " 1.216525972030927,\n",
       " 1.1993545711516294,\n",
       " 1.1824641024388034,\n",
       " 1.1658499697105327,\n",
       " 1.149507651980587,\n",
       " 1.133432702228196,\n",
       " 1.117620746187933,\n",
       " 1.102067481159401,\n",
       " 1.0867686748364034,\n",
       " 1.0717201641552527,\n",
       " 1.056917854161937,\n",
       " 1.0423577168978093,\n",
       " 1.0280357903035147,\n",
       " 1.0139481771408503,\n",
       " 1.000091043932252,\n",
       " 0.986460619917648,\n",
       " 0.9730531960283696,\n",
       " 0.9598651238778461,\n",
       " 0.9468928147688237,\n",
       " 0.9341327387168175,\n",
       " 0.9215814234895432,\n",
       " 0.9092354536620656,\n",
       " 0.8970914696873981,\n",
       " 0.8851461669823208,\n",
       " 0.8733962950281433,\n",
       " 0.8618386564861835,\n",
       " 0.8504701063277225,\n",
       " 0.8392875509781781,\n",
       " 0.8282879474753068,\n",
       " 0.8174683026411457,\n",
       " 0.8068256722675322,\n",
       " 0.796357160314926,\n",
       " 0.7860599181243527,\n",
       " 0.7759311436422314,\n",
       " 0.765968080657894,\n",
       " 0.7561680180535688,\n",
       " 0.7465282890666423,\n",
       " 0.7370462705639876,\n",
       " 0.7277193823281642,\n",
       " 0.7185450863552971,\n",
       " 0.7095208861644503,\n",
       " 0.7006443261182763,\n",
       " 0.6919129907548146,\n",
       " 0.6833245041301887,\n",
       " 0.6748765291720806,\n",
       " 0.6665667670437674,\n",
       " 0.6583929565185784,\n",
       " 0.6503528733645639,\n",
       " 0.6424443297392564,\n",
       " 0.634665173594314,\n",
       " 0.6270132880899175,\n",
       " 0.6194865910187357,\n",
       " 0.6120830342393258,\n",
       " 0.6048006031188008,\n",
       " 0.5976373159846107,\n",
       " 0.5905912235852977,\n",
       " 0.5836604085600704,\n",
       " 0.5768429849170603,\n",
       " 0.5701370975201078,\n",
       " 0.5635409215839536,\n",
       " 0.5570526621776762,\n",
       " 0.5506705537362688,\n",
       " 0.544392859580193,\n",
       " 0.5382178714428035,\n",
       " 0.5321439090054971,\n",
       " 0.5261693194404723,\n",
       " 0.5202924769609605,\n",
       " 0.5145117823788317,\n",
       " 0.5088256626694216,\n",
       " 0.5032325705434842,\n",
       " 0.4977309840261535,\n",
       " 0.49231940604278607,\n",
       " 0.48699636401157925,\n",
       " 0.4817604094428597,\n",
       " 0.47661011754492444,\n",
       " 0.4715440868363299,\n",
       " 0.4665609387645258,\n",
       " 0.4616593173307292,\n",
       " 0.45683788872093006,\n",
       " 0.45209534094294296,\n",
       " 0.4474303834693889,\n",
       " 0.44284174688652067,\n",
       " 0.43832818254879774,\n",
       " 0.4338884622391018,\n",
       " 0.4295213778345257,\n",
       " 0.4252257409776175,\n",
       " 0.42100038275301105,\n",
       " 0.41684415336934244,\n",
       " 0.4127559218463731,\n",
       " 0.40873457570723476,\n",
       " 0.40477902067569654,\n",
       " 0.4008881803784041,\n",
       " 0.3970609960519735,\n",
       " 0.39329642625488664,\n",
       " 0.3895934465840965,\n",
       " 0.38595104939627023,\n",
       " 0.38236824353359133,\n",
       " 0.3788440540540524,\n",
       " 0.3753775219661508,\n",
       " 0.37196770396793655,\n",
       " 0.3686136721903203,\n",
       " 0.365314513944588,\n",
       " 0.36206933147403847,\n",
       " 0.35887724170969254,\n",
       " 0.3557373760299913,\n",
       " 0.3526488800244333,\n",
       " 0.34961091326107446,\n",
       " 0.34662264905782875,\n",
       " 0.34368327425751766,\n",
       " 0.3407919890065961,\n",
       " 0.3379480065374956,\n",
       " 0.3351505529545358,\n",
       " 0.33239886702333216,\n",
       " 0.3296921999636514,\n",
       " 0.3270298152456545,\n",
       " 0.32441098838947724,\n",
       " 0.32183500676808513,\n",
       " 0.3193011694133557,\n",
       " 0.3168087868253346,\n",
       " 0.3143571807846077,\n",
       " 0.3119456841677519,\n",
       " 0.3095736407657912,\n",
       " 0.3072404051056397,\n",
       " 0.3049453422744535,\n",
       " 0.30268782774685743,\n",
       " 0.30046724721500795,\n",
       " 0.29828299642142386,\n",
       " 0.2961344809945589,\n",
       " 0.2940211162870661,\n",
       " 0.2919423272167005,\n",
       " 0.28989754810983426,\n",
       " 0.28788622254752355,\n",
       " 0.2859078032141009,\n",
       " 0.2839617517482386,\n",
       " 0.28204753859645215,\n",
       " 0.28016464286900233,\n",
       " 0.2783125521981474,\n",
       " 0.27649076259872485,\n",
       " 0.2746987783310029,\n",
       " 0.27293611176578647,\n",
       " 0.2712022832517212,\n",
       " 0.26949682098477395,\n",
       " 0.26781926087984753,\n",
       " 0.2661691464444939,\n",
       " 0.26454602865469434,\n",
       " 0.2629494658326746,\n",
       " 0.26137902352671627,\n",
       " 0.2598342743929353,\n",
       " 0.2583147980789906,\n",
       " 0.2568201811097059,\n",
       " 0.2553500167745504,\n",
       " 0.2539039050169699,\n",
       " 0.2524814523255214,\n",
       " 0.2510822716267948,\n",
       " 0.24970598218008078,\n",
       " 0.24835220947376851,\n",
       " 0.24702058512343097,\n",
       " 0.24571074677158442,\n",
       " 0.24442233798908256,\n",
       " 0.24315500817812613,\n",
       " 0.24190841247686237,\n",
       " 0.24068221166553835,\n",
       " 0.23947607207419558,\n",
       " 0.23828966549187244,\n",
       " 0.23712266907729362,\n",
       " 0.23597476527101707,\n",
       " 0.2348456417090211,\n",
       " 0.23373499113770943,\n",
       " 0.23264251133029512,\n",
       " 0.23156790500456478,\n",
       " 0.23051087974198048,\n",
       " 0.22947114790810907,\n",
       " 0.22844842657435202,\n",
       " 0.22744243744095455,\n",
       " 0.22645290676127647,\n",
       " 0.22547956526730129,\n",
       " 0.22452214809636303,\n",
       " 0.2235803947190731,\n",
       " 0.22265404886842588,\n",
       " 0.22174285847006478,\n",
       " 0.22084657557368617,\n",
       " 0.2199649562855715,\n",
       " 0.21909776070221687,\n",
       " 0.21824475284505165,\n",
       " 0.21740570059622621,\n",
       " 0.21658037563544694,\n",
       " 0.2157685533778472,\n",
       " 0.21497001291287543,\n",
       " 0.21418453694417797,\n",
       " 0.2134119117304733,\n",
       " 0.21265192702738697,\n",
       " 0.2119043760302403,\n",
       " 0.21116905531777652,\n",
       " 0.21044576479680593,\n",
       " 0.20973430764775797,\n",
       " 0.20903449027112114,\n",
       " 0.20834612223476373,\n",
       " 0.20766901622211253,\n",
       " 0.2070029879811808,\n",
       " 0.2063478562744314,\n",
       " 0.20570344282945813,\n",
       " 0.20506957229047496,\n",
       " 0.20444607217059838,\n",
       " 0.20383277280491138,\n",
       " 0.2032295073042942,\n",
       " 0.20263611151001215,\n",
       " 0.20205242394904288,\n",
       " 0.20147828579013974,\n",
       " 0.20091354080060875,\n",
       " 0.20035803530379717,\n",
       " 0.19981161813727316,\n",
       " 0.19927414061169396,\n",
       " 0.1987454564703436,\n",
       " 0.1982254218493342,\n",
       " 0.19771389523846009,\n",
       " 0.19721073744268733,\n",
       " 0.19671581154427814,\n",
       " 0.19622898286553409,\n",
       " 0.19575011893214567,\n",
       " 0.1952790894371468,\n",
       " 0.1948157662054527,\n",
       " 0.19436002315898437,\n",
       " 0.19391173628235783,\n",
       " 0.19347078358914147,\n",
       " 0.19303704508865543,\n",
       " 0.19261040275332675,\n",
       " 0.19219074048656676,\n",
       " 0.19177794409118246,\n",
       " 0.1913719012383003,\n",
       " 0.19097250143679947,\n",
       " 0.19057963600324643,\n",
       " 0.19019319803231777,\n",
       " 0.18981308236771352,\n",
       " 0.18943918557353884,\n",
       " 0.18907140590615817,\n",
       " 0.18870964328651094,\n",
       " 0.1883537992728752,\n",
       " 0.18800377703408352,\n",
       " 0.18765948132317029,\n",
       " 0.18732081845145535,\n",
       " 0.18698769626304967,\n",
       " 0.18666002410977728,\n",
       " 0.1863377128265094,\n",
       " 0.18602067470689967,\n",
       " 0.18570882347951936,\n",
       " 0.18540207428438077,\n",
       " 0.1851003436498444,\n",
       " 0.1848035494699078,\n",
       " 0.1845116109818593,\n",
       " 0.18422444874430344,\n",
       " 0.18394198461554498,\n",
       " 0.1836641417323205,\n",
       " 0.1833908444888878,\n",
       " 0.18312201851644982,\n",
       " 0.18285759066291657,\n",
       " 0.18259748897300188,\n",
       " 0.1823416426686413,\n",
       " 0.18208998212973274,\n",
       " 0.18184243887519175,\n",
       " 0.18159894554431577,\n",
       " 0.1813594358784558,\n",
       " 0.1811238447029852,\n",
       " 0.1808921079095646,\n",
       " 0.18066416243869698,\n",
       " 0.18043994626256837,\n",
       " 0.18021939836816966,\n",
       " 0.1800024587406914,\n",
       " 0.1797890683471966,\n",
       " 0.17957916912055297,\n",
       " 0.17937270394363505,\n",
       " 0.17916961663377948,\n",
       " 0.17896985192749829,\n",
       " 0.1787733554654398,\n",
       " 0.17858007377759647,\n",
       " 0.1783899542687555,\n",
       " 0.17820294520418584,\n",
       " 0.1780189956955618,\n",
       " 0.17783805568711486,\n",
       " 0.17766007594201014,\n",
       " 0.1774850080289535,\n",
       " 0.17731280430900648,\n",
       " 0.17714341792262794,\n",
       " 0.17697680277692052,\n",
       " 0.17681291353308748,\n",
       " 0.17665170559409688,\n",
       " 0.17649313509254444,\n",
       " 0.17633715887871865,\n",
       " 0.1761837345088549,\n",
       " 0.17603282023359074,\n",
       " 0.17588437498660178,\n",
       " 0.17573835837342852,\n",
       " 0.17559473066048328,\n",
       " 0.17545345276423885,\n",
       " 0.17531448624059248,\n",
       " 0.17517779327440497,\n",
       " 0.1750433366692112,\n",
       " 0.17491107983709675,\n",
       " 0.17478098678874338,\n",
       " 0.1746530221236341,\n",
       " 0.17452715102042168,\n",
       " 0.17440333922745271,\n",
       " 0.17428155305344584,\n",
       " 0.17416175935832584,\n",
       " 0.17404392554420403,\n",
       " 0.1739280195465087,\n",
       " 0.1738140098252598,\n",
       " 0.17370186535648574,\n",
       " 0.1735915556237817,\n",
       " 0.17348305061000596,\n",
       " 0.1733763207891107,\n",
       " 0.17327133711810858,\n",
       " 0.1731680710291688,\n",
       " 0.17306649442184385,\n",
       " 0.17296657965542261,\n",
       " 0.17286829954140917,\n",
       " 0.17277162733612372,\n",
       " 0.17267653673342637,\n",
       " 0.17258300185755684,\n",
       " 0.17249099725609554,\n",
       " 0.17240049789303594,\n",
       " 0.17231147914197176,\n",
       " 0.17222391677939755,\n",
       " 0.17213778697811455,\n",
       " 0.17205306630074865,\n",
       " 0.1719697316933723,\n",
       " 0.17188776047923074,\n",
       " 0.17180713035257164,\n",
       " 0.171727819372575,\n",
       " 0.1716498059573837,\n",
       " 0.17157306887822907,\n",
       " 0.17149758725365483,\n",
       " 0.17142334054383668,\n",
       " 0.1713503085449894,\n",
       " 0.1712784713838731,\n",
       " 0.1712078095123815,\n",
       " 0.17113830370222627,\n",
       " 0.1710699350397019,\n",
       " 0.17100268492054008,\n",
       " 0.1709365350448471,\n",
       " 0.17087146741212442,\n",
       " 0.17080746431636964,\n",
       " 0.17074450834125893,\n",
       " 0.170682582355408,\n",
       " 0.17062166950770985,\n",
       " 0.17056175322274883,\n",
       " 0.1705028171962921,\n",
       " 0.1704448453908511,\n",
       " 0.17038782203131778,\n",
       " 0.17033173160067264,\n",
       " 0.17027655883576193,\n",
       " 0.17022228872314424,\n",
       " 0.1701689064950046,\n",
       " 0.17011639762513733,\n",
       " 0.1700647478249913,\n",
       " 0.17001394303978348,\n",
       " 0.16996396944467332,\n",
       " 0.16991481344100115,\n",
       " 0.16986646165258815,\n",
       " 0.16981890092209548,\n",
       " 0.16977211830744518,\n",
       " 0.1697261010782968,\n",
       " 0.1696808367125853,\n",
       " 0.16963631289311173,\n",
       " 0.16959251750419266,\n",
       " 0.16954943862836275,\n",
       " 0.1695070645431319,\n",
       " 0.16946538371779585,\n",
       " 0.16942438481029765,\n",
       " 0.16938405666414194,\n",
       " 0.1693443883053588,\n",
       " 0.1693053689395175,\n",
       " 0.1692669879487897,\n",
       " 0.16922923488905825,\n",
       " 0.16919209948707895,\n",
       " 0.1691555716376807,\n",
       " 0.16911964140101926,\n",
       " 0.1690842989998695,\n",
       " 0.16904953481696747,\n",
       " 0.16901533939239102,\n",
       " 0.16898170342098784,\n",
       " 0.16894861774984132,\n",
       " 0.1689160733757823,\n",
       " 0.16888406144293563,\n",
       " 0.16885257324031444,\n",
       " 0.16882160019944573,\n",
       " 0.1687911338920429,\n",
       " 0.1687611660277081,\n",
       " 0.16873168845167977,\n",
       " 0.1687026931426109,\n",
       " 0.16867417221038827,\n",
       " 0.1686461178939844,\n",
       " 0.16861852255934537,\n",
       " 0.1685913786973151,\n",
       " 0.16856467892158933,\n",
       " 0.16853841596670865,\n",
       " 0.1685125826860787,\n",
       " 0.16848717205002803,\n",
       " 0.16846217714389264,\n",
       " 0.16843759116613627,\n",
       " 0.16841340742649968,\n",
       " 0.1683896193441778,\n",
       " 0.16836622044603197,\n",
       " 0.1683432043648272,\n",
       " 0.16832056483749785,\n",
       " 0.1682982957034465,\n",
       " 0.16827639090286572,\n",
       " 0.16825484447508887,\n",
       " 0.16823365055696887,\n",
       " 0.16821280338128305,\n",
       " 0.1681922972751625,\n",
       " 0.1681721266585487,\n",
       " 0.16815228604267682,\n",
       " 0.16813277002857932,\n",
       " 0.1681135733056194,\n",
       " 0.16809469065004465,\n",
       " 0.16807611692356506,\n",
       " 0.16805784707195595,\n",
       " 0.16803987612368249,\n",
       " 0.16802219918854508,\n",
       " 0.16800481145635182,\n",
       " 0.1679877081956065,\n",
       " 0.1679708847522231,\n",
       " 0.1679543365482585,\n",
       " 0.16793805908066697,\n",
       " 0.16792204792007437,\n",
       " 0.16790629870957288,\n",
       " 0.16789080716353685,\n",
       " 0.1678755690664548,\n",
       " 0.1678605802717829,\n",
       " 0.16784583670081715,\n",
       " 0.1678313343415823,\n",
       " 0.16781706924774167,\n",
       " 0.16780303753752213,\n",
       " 0.1677892353926585,\n",
       " 0.16777565905735348,\n",
       " 0.16776230483725751,\n",
       " 0.16774916909846102,\n",
       " 0.16773624826650804,\n",
       " 0.16772353882542165,\n",
       " 0.16771103731674802,\n",
       " 0.1676987403386157,\n",
       " 0.16768664454480925,\n",
       " 0.16767474664385842,\n",
       " 0.16766304339814378,\n",
       " 0.16765153162301427,\n",
       " 0.16764020818592096,\n",
       " 0.16762907000556593,\n",
       " 0.16761811405106206,\n",
       " 0.16760733734110858,\n",
       " 0.16759673694318086,\n",
       " 0.16758630997273155,\n",
       " 0.16757605359240585,\n",
       " 0.1675659650112693,\n",
       " 0.1675560414840487,\n",
       " 0.1675462803103845,\n",
       " 0.16753667883409604,\n",
       " 0.16752723444246012,\n",
       " 0.16751794456549787,\n",
       " 0.16750880667527646,\n",
       " 0.16749981828522242,\n",
       " 0.16749097694944168,\n",
       " 0.167482280262059,\n",
       " 0.16747372585655748,\n",
       " 0.16746531140513954,\n",
       " 0.1674570346180906,\n",
       " 0.1674488932431568,\n",
       " 0.16744088506493288,\n",
       " 0.16743300790425766,\n",
       " 0.16742525961762356,\n",
       " 0.16741763809659002,\n",
       " 0.16741014126721296,\n",
       " 0.16740276708947802,\n",
       " 0.16739551355674728,\n",
       " 0.16738837869521128,\n",
       " 0.16738136056335434,\n",
       " 0.16737445725142383,\n",
       " 0.1673676668809119,\n",
       " 0.16736098760404414,\n",
       " 0.16735441760327655,\n",
       " 0.1673479550908006,\n",
       " 0.16734159830805806,\n",
       " 0.16733534552526053,\n",
       " 0.16732919504091975,\n",
       " 0.16732314518138583,\n",
       " 0.16731719430038916,\n",
       " 0.167311340778595,\n",
       " 0.16730558302316048,\n",
       " 0.1672999194673037,\n",
       " 0.1672943485698752,\n",
       " 0.16728886881493976,\n",
       " 0.1672834787113632,\n",
       " 0.16727817679240747,\n",
       " 0.16727296161533084,\n",
       " 0.16726783176099538,\n",
       " 0.16726278583348117,\n",
       " 0.16725782245970636,\n",
       " 0.1672529402890526,\n",
       " 0.16724813799299884,\n",
       " 0.16724341426475947,\n",
       " 0.16723876781892813,\n",
       " 0.16723419739112794,\n",
       " 0.16722970173766902,\n",
       " 0.16722527963520797,\n",
       " 0.16722092988041515,\n",
       " 0.16721665128965,\n",
       " 0.16721244269863456,\n",
       " 0.16720830296214115,\n",
       " 0.16720423095367684,\n",
       " 0.16720022556517952,\n",
       " 0.16719628570671524,\n",
       " 0.16719241030618198,\n",
       " 0.16718859830901808,\n",
       " 0.16718484867791417,\n",
       " 0.16718116039253256,\n",
       " 0.16717753244922845,\n",
       " 0.16717396386077726,\n",
       " 0.16717045365610586,\n",
       " 0.16716700088002767,\n",
       " 0.16716360459298454,\n",
       " 0.16716026387078947,\n",
       " 0.16715697780437513,\n",
       " 0.16715374549954745,\n",
       " 0.16715056607674164,\n",
       " 0.16714743867078344,\n",
       " 0.16714436243065184,\n",
       " 0.16714133651925123,\n",
       " 0.167138360113179,\n",
       " 0.16713543240250514,\n",
       " 0.16713255259055015,\n",
       " 0.1671297198936687,\n",
       " 0.16712693354103564,\n",
       " 0.1671241927744376,\n",
       " 0.1671214968480659,\n",
       " 0.16711884502831287,\n",
       " 0.16711623659357414,\n",
       " 0.1671136708340502,\n",
       " 0.16711114705155466,\n",
       " 0.16710866455932336,\n",
       " 0.16710622268182876,\n",
       " 0.16710382075459443,\n",
       " 0.16710145812401533,\n",
       " 0.16709913414718,\n",
       " 0.16709684819169449,\n",
       " 0.16709459963551243,\n",
       " 0.16709238786676348,\n",
       " 0.16709021228358778,\n",
       " 0.16708807229397238,\n",
       " 0.16708596731559022,\n",
       " 0.1670838967756412,\n",
       " 0.16708186011069603,\n",
       " 0.167079856766544,\n",
       " 0.16707788619804095,\n",
       " 0.16707594786896235,\n",
       " 0.16707404125185576,\n",
       " 0.1670721658278991,\n",
       " 0.16707032108675698,\n",
       " 0.1670685065264447,\n",
       " 0.16706672165318992,\n",
       " 0.16706496598129753,\n",
       " 0.1670632390330205,\n",
       " 0.16706154033842643,\n",
       " 0.16705986943527246,\n",
       " 0.16705822586887695,\n",
       " 0.16705660919199808,\n",
       " 0.16705501896471076,\n",
       " 0.16705345475428685,\n",
       " 0.167051916135079,\n",
       " 0.16705040268840227,\n",
       " 0.16704891400242303,\n",
       " 0.1670474496720436,\n",
       " 0.16704600929879546,\n",
       " 0.16704459249072906,\n",
       " 0.16704319886230626,\n",
       " 0.16704182803429812,\n",
       " 0.1670404796336785,\n",
       " 0.16703915329352473,\n",
       " 0.16703784865291785,\n",
       " 0.1670365653568426,\n",
       " 0.16703530305609285,\n",
       " 0.16703406140717458,\n",
       " 0.16703284007221497,\n",
       " 0.16703163871886764,\n",
       " 0.16703045702022393,\n",
       " 0.16702929465472408,\n",
       " 0.16702815130606857,\n",
       " 0.167027026663133,\n",
       " 0.16702592041988254,\n",
       " 0.1670248322752906,\n",
       " 0.16702376193325402,\n",
       " 0.16702270910251488,\n",
       " 0.16702167349657993,\n",
       " 0.16702065483364353,\n",
       " 0.16701965283651024,\n",
       " 0.16701866723252,\n",
       " 0.16701769775347258,\n",
       " 0.16701674413555687,\n",
       " 0.167015806119277,\n",
       " 0.1670148834493835,\n",
       " 0.16701397587480157,\n",
       " 0.1670130831485655,\n",
       " 0.16701220502774858,\n",
       " 0.16701134127340017,\n",
       " 0.16701049165047754,\n",
       " 0.16700965592778458,\n",
       " 0.16700883387790588,\n",
       " 0.16700802527714903,\n",
       " 0.1670072299054794,\n",
       " 0.16700644754646288,\n",
       " 0.16700567798720695,\n",
       " 0.16700492101830086,\n",
       " 0.16700417643376075,\n",
       " 0.16700344403097292,\n",
       " 0.16700272361063756,\n",
       " 0.1670020149767169,\n",
       " 0.1670013179363794,\n",
       " 0.16700063229994833,\n",
       " 0.16699995788085062,\n",
       " 0.16699929449556541,\n",
       " 0.16699864196357458,\n",
       " 0.16699800010731272,\n",
       " 0.16699736875212048,\n",
       " 0.16699674772619502,\n",
       " 0.16699613686054443,\n",
       " 0.1669955359889425,\n",
       " 0.16699494494788114,\n",
       " 0.166994363576529,\n",
       " 0.1669937917166846,\n",
       " 0.16699322921273535,\n",
       " 0.16699267591161415,\n",
       " 0.16699213166275872,\n",
       " 0.1669915963180695,\n",
       " 0.16699106973187078,\n",
       " 0.16699055176086872,\n",
       " 0.16699004226411485,\n",
       " 0.16698954110296688,\n",
       " 0.16698904814105023,\n",
       " 0.16698856324422157,\n",
       " 0.1669880862805322,\n",
       " 0.16698761712019253,\n",
       " 0.16698715563553568,\n",
       " 0.166986701700984,\n",
       " 0.1669862551930145,\n",
       " 0.1669858159901248,\n",
       " 0.16698538397280008,\n",
       " 0.16698495902348148,\n",
       " 0.16698454102653268,\n",
       " 0.1669841298682098,\n",
       " 0.16698372543663006,\n",
       " 0.16698332762174029,\n",
       " 0.16698293631528854,\n",
       " 0.166982551410794,\n",
       " 0.16698217280351718,\n",
       " 0.16698180039043312,\n",
       " 0.16698143407020113,\n",
       " 0.16698107374314033,\n",
       " 0.1669807193111991,\n",
       " 0.16698037067793,\n",
       " 0.1669800277484652,\n",
       " 0.1669796904294869]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "all_loss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(x,y_pred)\n",
    "plt.scatter(x,y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(range(800),all_loss)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "x=torch.unsqueeze(torch.linspace(-1,1,100),dim=1)\n",
    "y=3*x.pow(2)+2+0.2*torch.rand(x.size())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "w=torch.randn(1,1,requires_grad=True)\n",
    "b=torch.randn(1,1,requires_grad=True)\n",
    "all_loss_torch=[]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "for t in range(800):\n",
    "    y_pred=x.pow(2).mm(w)+b\n",
    "    loss=0.5*(y_pred-y)**2\n",
    "    loss=loss.sum()\n",
    "    all_loss_torch.append(loss)\n",
    "    \n",
    "    loss.backward()\n",
    "    \n",
    "    with torch.no_grad():\n",
    "        w-=lr*w.grad\n",
    "        b-=lr*b.grad\n",
    "        \n",
    "        w.grad.zero_()\n",
    "        b.grad.zero_()\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x1cf72c8e288>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAApvElEQVR4nO3deXxU5dk38N81k0kybAmUsGTYrFBUQIjGFdsqWkGsmqp95X1arX2fz0tpba1dULR9WmrbR1ra2tpFS7e32qfVVjR1QakWN0DUQNgU0IigJChrgiF75nr/mJl4MjlnlmTOnDNnft/PJx8mc87MXJw5ueae+1z3fYuqgoiIcp/P6QCIiCgzmNCJiDyCCZ2IyCOY0ImIPIIJnYjIIwqceuGRI0fqpEmTnHp5IqKctHHjxkOqWma2zbGEPmnSJNTU1Dj18kREOUlE9lptY5cLEZFHMKETEXkEEzoRkUcwoRMReQQTOhGRRzhW5dIf1bX1WL56FxoaW1FeGsTiuVNRVRFyOiwiIlfImYReXVuPWx/ahtbObgBAfWMrbn1oGwAwqRNRTrC7UZozXS7LV+/qSeYxrZ3dWL56l0MRERGlLtYorW9sheKDRml1bX3GXiNnEnpDY6vp/fWNrZi9bE1GDwoRUaZlo1GaMwm9vDRouc2OTzoiokyyapRa3d8fOZPQF8+dimDAb7md3S9E5GZjS4pN70/UWE1XSgldRPaIyDYR2SwifSZgkYi7RKRORLaKyGkZizCqqiKEO66cgVCC/3wmP+mIiDLp4mlj+twXDPixeO7UjL1GOi30C1R1lqpWmmy7BMCU6M9CAHdnIrh4VRUhrFsyxzKpZ/KTjogok+oONGP4oADKS4ohAEKlQdxx5YyMVrlkqmzxCgD3amTF6Q0iUioiY1V1f4aev5fFc6fi5ge3oqM73HNfpj/piIgyZe/h41hbdwjf+MRH8JULp9j2Oqm20BXAv0Rko4gsNNkeAvCO4fd90ftsUVURwrIrZ8AvEnlxGz7piIgy5W8vvwO/T/DpyvG2vk6qLfTZqtogIqMAPCUiO1X1ecN2MXmMxt8R/TBYCAATJkxIO1ijK08fh3eOtuLOp1/HX//vWah9uxGzl63hKFIicpxxANHYkmIca+vCnJNGYYzFhdFMSamFrqoN0X8PAHgYwJlxu+wDYPzoGQegweR5VqhqpapWlpWZLriRlmvOGA+/T3D7o6/ZXrBPRJSK+AFEDU1taG7vwgkjB9v+2kkTuogMFpGhsdsALgawPW63RwBcF612ORtAk13950ZjSopx0cmj8MyuAxxFSkSuYDaACAAe29KnjZtxqbTQRwNYKyJbALwM4HFVfVJEFonIoug+qwDsBlAH4HcAvmRLtCY+c9ZEhPt07kSwjJGIss1yAFFTm+2j2pP2oavqbgAzTe6/x3BbAdyQ2dBSc97kkfD7BN0mWZ1ljESUbeWlQdQnmKrEzkkFc2akqBWfT3DpjLF97mcZIxE5wclR7Tmf0AFg6eXTUOATDC7021awT0SUitio9tJgwHIfu7qDc2Y+9ERGDC7EZTPL8dRr72H79+ZicJEn/ltElKOqKkL40/o9aK5vQlcWu4M90UIHgM+cNQHN7V3452b7ryQTESWybV8TtrzTiMtmlvfpfrGzO9gzCf30icNx0pihuG/DXkSu0RIROeO+DXsQDPix9PJpPZMKZqM72DN9EyKC686ZhNse3oaNe4+ictIIp0MiojzU2NKBf25uwJWnjUNJMICqilDWrud5poUOAFfMKsfQogLct2Gv06EQUZ76R80+tHeFcd05E7P+2p5K6IOLCnDV6eOwatt+HHy/3elwiCjPhMOKv7y0F2dMGo6Txw7L+ut7KqEDwLXnTERnt+KBV952OhQiyiPVtfU444dPY+/hFtQdaHZkLinPJfQTy4bgI6OH4M6n3sCkJY9zAWkisl1sQq7DxzsAAEdbOh2ZINBzCb26th57DrWgO1rpwpkXichuZhNyOTFBoOcS+vLVu3qtZARw5kUispflhFxZniDQcwndLQeWiPKH1cIV2Z4g0HMJ3eoAcuZFIrLLx6b0XbDHiQkCPTOwKGbx3Km49aFtvfqzigt8nHmRiDIqtsxcfWMrCnyC4YMCCAb82N/U5tgymJ5L6LEDGDvQADB3+hjOvEhEGROraok1HLvCiub2Lnz3smmO5hrPJXQAvYbaXn33etS+3YjusMLvM1vLmogoPWZVLZ3diuWrdzma0D3Xhx7vc+dOwttHWvDsrgNOh0JEHuHW4gvPJ/R508dgzLBi/L/1e5wOhYg8wq3FF55P6I9v3Y+Wji688MYhnPnDpznAiIgGbPHcqSgu6J0+3bDspacTeuzCxbG2LgDAgffbOWqUiAasqiKEy2aW9/zulmUvPXlRNCbRcFynDzwR5S5VRe07jZgeGoZHv3weRNxRcOHpFrpbL1wQUW574Y1DqDvQjM+fe4JrkjmQRkIXEb+I1IrIYybbzheRJhHZHP35TmbD7B+rCxRjLYbpEhGl4k/r3sLIIUX45MyxTofSSzot9K8C2JFg+wuqOiv6c/sA48qIxXOn9lmgFQAamto4rS4R9cubB5vxzK6D+OzZE1BU0De/OCmlhC4i4wBcCuD39oaTWVUVoZ4FWuNxWl0iSld1bT0u/+VaAMD9L7/juvyRagv95wBuBhBOsM85IrJFRJ4QkWlmO4jIQhGpEZGagwcPphlq/1RVhLBuyRzTpM5pdYkoVdW19ViyciuOd0QKLd491ua6RmHShC4inwRwQFU3JthtE4CJqjoTwC8BVJvtpKorVLVSVSvLyvrOTmYnXiAlooFYvnoX2rrcvdZCKi302QAuF5E9AO4HMEdE/mLcQVWPqWpz9PYqAAERGZnpYAfCrSO7iCg31OdAozBpQlfVW1V1nKpOArAAwBpV/axxHxEZI9HaHRE5M/q8h22It9/MLpD6feL4yC4iyg3DBwVM73dTo7DfA4tEZBEAqOo9AK4G8EUR6QLQCmCBanRRT5cwTqvb0NiK4oAfYVXMOXmUw5ERkdupKoKFfjS2dMKY2Nww3N9InMq7lZWVWlNT48hrA8D2+iZ88pdrcdv8k7DwYyc6FgcRud/6ukP4j9+/hAVnjMcLbxxCQ2OrY4tYiMhGVa002+bpof+JTA+V4OwPj8Cf1u3B52efgIDf04NmiaifqmvrccvKrQCA518/iJvnneTaqUPyOot94WMnYn9TGx7d0uB0KETkQrFk3h6tbmlocl+polHedrkAkX6xi+98HsfbI7MxOrkWIBG5h3G9UDOh0iDWLZmT5agi2OViwuoNi40gBcCkTpSH4tcLNeOmUkWjvOxyib1hVp++bhssQETZYzbtdjw3lSoa5WVCT+UNc+snMBHZK9nfvttKFY3yMqGnkqzd+glMRPZK9LfvlpWJrORlH3p5adCyuwVw9ycwEdkj0YXQYMDv6kQek5ctdKt50gFgcGFuvHFElDmJrqu5vVVulJct9PhpAGKliuvqDuHRrQ346BRXzStGRDazuq5WXlLsWHlif+RlQgciST3+E3d6aBge3LQPf16/B1+/eGrPVzAnh/kSkf2srqvtb2rLciQDk7cJ3czkUUPxiZNH488v7kWoNIilj77W86nN+nQi77K6rpZrxRF52YeeyKLzT0RTayf+e9XOPl/BWJ9O5C3VtfWYvWwN6htbIXHbcrE4ggk9zmkThuOsE0agqa3TdDvr04m8If5CqHESlPKS4py5EGrELpc41bX1qDvQbLk9176CEZE5qwuhw4oLsP7WCx2IaOCY0A2SzeGQi1/BiMic1bftY21dWY4kc9jlYpBoSoBcqkUlouSsvm2HcvhbOBO6QaL+8XVL5jCZE3mI2QDD4gJfTn8LZ0I3sPrEHjG4MMuREJHdqipCuOPKGRg9tAgAMLjIj2VXnZrTDTcmdAOzT2wBMLSoAC5b85qIMqCqIoRPTBuNgF/w9Nc/ntPJHGBC7yX2iR0qDUIQ6Uu7+vRx2HukBWvrDjkdHhFl2LtNbfj7K/tw9enjMLYkd/vOY1jlEid+SoD2rm6srTuEu/79Bs6bPBIi8cMPiCiXGKf0GFToR1c4jC+dP9npsDKCLfQkigr8WPTxE/HKnqPYsPuI0+EQ0QAYBxMpgOMd3RAINu496nRoGZFyQhcRv4jUishjJttERO4SkToR2Soip2U2TGddc8Z4DCsuwPV/ehknLHkcs5etce2q30Rkzaw0uVvVM1N6pNNC/yqAHRbbLgEwJfqzEMDdA4zLVZ7c/i5aOrrR3hWG4oOJupjUiXKLVWmyV6b0SCmhi8g4AJcC+L3FLlcAuFcjNgAoFZGxGYrRcctX70JXuHeVCyfqIso9VqXJXpnSI9UW+s8B3AwgbLE9BOAdw+/7ovf1IiILRaRGRGoOHjyYTpyO8vqnOlG+WDx3KooLeqc9L03pkTShi8gnARxQ1Y2JdjO5r0/htqquUNVKVa0sKytLI0xnef1TnShfVFWEcJ5hRTKvTemRSgt9NoDLRWQPgPsBzBGRv8Ttsw/AeMPv4wA0ZCRCF7Bag7S+sZUXSIlyyJHjHXjxzcO4bGY59iy71HNTeiRN6Kp6q6qOU9VJABYAWKOqn43b7REA10WrXc4G0KSq+zMfrjOMA47i8QIpUe743Qu70dLZjRvneKPuPF6/69BFZJGILIr+ugrAbgB1AH4H4EsZiM1VqipCWLdkjmlS5wVSIvc73NyOP6/fg8tOLceU0UOdDscWaY0UVdVnATwbvX2P4X4FcEMmA3MrXiAlyk0rXtiN1s5u3HjhFKdDsQ1HiqaJF0iJcs99L+7Biud2QxX43B9f9mwXKRN6mrw4hzKRl1XX1mPpo6/1lN15+boXE3qazC6QXj97kqeulBN5ybIndqI7TwYGcrbFfojNyNje1Y05P3kOL755GKrKmRiJXOjdY22m93vxuhcT+gAUFfhx44WTccvKbXh6xwF84pTRTodElNeMU+OWlwbx+dmTLPf14nUvdrkM0FWnjcOkDw3CT/+1C+EwVzUickr81Lj1ja24Y9VO+EU8PdzfiAl9gB7buh9NrZ3Y+e77OP0HT3nyQgtRLrCaGrdbFcUBP4YPCvSsROal4f5G7HIZgFiLIHYSHW3pxJKVWwHAkycLkZsl6hNvbO1EMODHndfM8vTfJlvoA2DWImjrCnvy6jmR2yXrE/dqZYsRE/oAWLUI6j149ZzI7awm0TPyYmWLEbtcBqC8NGiavIcV87ASZYuxsqUkGIDfBzS3d5vu68XKFiO20AfArEXgE6CzW9HU0ulQVET5I76ypbG1E8c7ujG40J83lS1GTOgDYBw1KgBKgwEMLipAa2c3Zv+I86QT2c3sOpYqECjwYdlVp/b8bXq5ssVIIhMlZl9lZaXW1NQ48tp2iK94MQqVBrF47lTPn0xE2XbCksf7Lo0WtWfZpVmNJVtEZKOqVpptYws9Q8xaCjFengyIyElWfeJm6xbkAyb0DEl29TwfSqaIso2zn/bGhJ4hqVw993rJFFG2xa5jDSmKVJaVDSnCsqtOzdvuTSb0DEmlBtbrJVNETjjrwyPQFQ7j8pnleOXbF+VtMgdYh54xsZNo+epdqG9shQC9Ltbk89dAIjstX70LYQX/vsCEnlGxedKBDwY7xAYeGbcR0cDE/33NOWkUxo8Y5HBUzmNCt0ksgasqrrp7PdbsPIDj7V0YXMRDTjQQZiXC6+sOobq2Pu8bTexDt5mI4FuXnoID77fjt8/vdjocopzHSfGsMaFnwekTh2PW+FL88t9vYNKSxzF7GUeREvWXVbUYq8hSSOgiUiwiL4vIFhF5VUS+Z7LP+SLSJCKboz/fsSfc3FRdW48d+4/lxarjRHazqhZjFVlqLfR2AHNUdSaAWQDmicjZJvu9oKqzoj+3ZzLIXLd89S60d4V73ceBRkT988WPn9jnvnyYeCsVSRO6RjRHfw1Ef7h4Zhr4FZEoc3a8eww+AUYNLcqribdSkVLJhYj4AWwEMBnAr1X1JZPdzhGRLQAaAHxTVV81eZ6FABYCwIQJE/oddK6xmjedXxGJ0rNj/zH87eW3cd05k7D08mlOh+M6KSV0Ve0GMEtESgE8LCLTVXW7YZdNACaqarOIzAdQDWCKyfOsALACiMy2OMDYc8biuVNNZ2K8cc5khyIiyg3GxSvGlhRjcFEBSoIBfO2ijzgdmiulVRStqo0i8iyAeQC2G+4/Zri9SkR+IyIjVfVQxiLNYcZRpA2NrfjQkEIcau7A3iMtvU7Yck6zS9Qjvt68oakNAHD1aeNQMijgZGiulTShi0gZgM5oMg8CuAjAj+L2GQPgPVVVETkTkb75w3YEnKviR4p+/e+b8dvnd6PAJz0XTGPVL7H9ifKZ1ZTUD27ahxd3H2bjx0QqVS5jATwjIlsBvALgKVV9TEQWicii6D5XA9ge7UO/C8ACdWrljBxQXVuP9XWH0R1WVr8QWUhUNMDSX3NJW+iquhVAhcn99xhu/wrArzIbmjclWtkohtUvRNbFBDGxxg9b6R/gSNEsS7SyUQyrX4hSm5KajZ/eOFNUliU7ATlAgvJZfJHAWR8ejmd3WddWsPHTG1voWZboBBxaVIDigA9fe2Az53uhvBPrjqxvbIUi0k/+3K5DGDOsGD/99Mw+rXU2fvpiQs8yqzUQA37B8Y4uHG3p7DmZedGH8olZd6QC6AqHcdXp43DHlTMQKg1ydGgC7HLJsvia9Fjt+XcfeRVNrZ299uVFH8onVt2Rh5s7AHCRmFQwoTvA7MS86YHNpvvyog/lC06RMXDscnGJEKcEpTxn1h3JfvL0MKG7BE9myndVFSF8a/7J8Enk9/KSYvaTp4ldLi4RO2l/9ORO7G9qQ8An+EHVdJ7MlFc2vX0Ufp/gyRs/io+MHup0ODmHLXQXqaoI4cVbL8Q9nz0dnWHFweZ2p0MiypoX3jiIh2rrsejjJzKZ9xMTugvNmz4GF58yGj9/+nW8fbjF6XCIbNfa0Y1vPbwdJ4wcjBsu4LTS/cWE7lLfu2IaCnw+3PrwVnCeM/Ky6tp6nPHDp/H2kRa839qJJ7e/63RIOYt96C710u4j8PsE6+oOo+L2p7D08mnsTyfPiA3xjy9TPHS8g1NIDwATugvFz8jY2NqJJSu3AuBJTrnLmMQF1gsTc0Bd/zGhu5DZEOi2rjB+/OTOnu1c4YhySXwjJVknIgfU9Q8TugtZncwNTW29/ii4whHlilSmjTbigLr+4UVRF0p0Msf/UbR2duMmzs5ILpdOi5sD6vqPCd2FUpnYPx5nZyQ3S9bijg4O5SyKA8QuFxcyzsiY7AKSES8mkVstnjvVcunFEK8FZQwTukvFZmScvWxNwnUV4/FiErlRLFn/+MmdaGhqg0+AH1RNx3+cNdHhyLyFXS4ul26C5sUkcquqihCuiCb2P3zuDCZzGzChu1yiBB2ITUsXxYtJ5GYvv3UE9zz3JhacMR4XnDTK6XA8iQnd5ayWrDtl7DBAgFFDi7gkF7ne+22d+NoDmzFhxCD81ydPcTocz0rahy4ixQCeB1AU3f9BVf1u3D4C4BcA5gNoAXC9qm7KfLj5x2rJunMnfwjzfv4CRg0rwtpb5qCwgJ/N5F5LH3kN+5ta8Y9F52JwES/d2SWVI9sOYI6qNotIAMBaEXlCVTcY9rkEwJToz1kA7o7+SxlgtZbiHVfOwBfu24ifP/06bp53kgORESW3att+rNy0DzfOmYzTJw53OhxPS9qs04jm6K+B6E98Fd0VAO6N7rsBQKmIjM1sqBRv7rQxWHDGeNz93JtY/+Yhp8Mh6uNPa9/CDX+NfFl/cOM+jpOwWUrf00XELyKbARwA8JSqvhS3SwjAO4bf90Xvi3+ehSJSIyI1Bw8e7GfIZPSdy07BCSMH42sPbMaR4x1Oh0PUY+XGffj+468hNvtzbOoKJnX7pJTQVbVbVWcBGAfgTBGZHreL9H1U37EwqrpCVStVtbKsrCztYKmvQYUFuGtBBY4e78TND3LudHKPpY++inDc6Rgb/Eb2SOtKmqo2AngWwLy4TfsAjDf8Pg5Aw0ACo9RND5VgySUn4ekd7+HeF/c6HQ4RXn7rCN5v6zLdxsFv9kma0EWkTERKo7eDAC4CsDNut0cAXCcRZwNoUtX9mQ6WrH1+9iTMOWkUfrhqB7bXNzkdDuWxI8c7cOPfauH3mX1x5+A3O6XSQh8L4BkR2QrgFUT60B8TkUUisii6zyoAuwHUAfgdgC/ZEi1ZEhH85NMz8aHBhbjhr5twrK3T6ZAoD4XD2nM956YLp/QZQ8HBb/YSp/pcKysrtaamxpHX9qL4Jb1mjitB9Q2zERkiQJR5sXOuobEVJcEARICjLZGGxKCAD62d4Z77G1s6uSBLhojIRlWtNNvGCn8PiF8NBgC27GvCN/+xBT/9X7OcC4w8y2yZRKOWznDP/cGAH3deM4uJPAs4vNADrFaDWbmpHrVvH3UgIvK6dFYgYmVL9jChe0CiqoEv/mUTDjW3ZzEaygfpVqqwsiU7mNA9IFHVwLvH2rBgxQZ0dYezGBF5XbqVKqxsyQ4mdA9ItmRd3YFmTP7WE1x3lDImnWUSWdmSPbwo6gHxS9ZZia07anwMUTqMlS3GWRNLigvg8wkaWzpZ2eIgli16zAlLHk+6/mioNIh1S+ZkJR7yDrNqKgFw+xXTcO05kxyLK98kKltkl4vHpNJXmc4apUQxZpUtCuCe53Y7ExD1wYTuMan0bRb6fWjvSq3kjCjGqlKFFSzuwT50j4nvTxf0nvay0O9DR3cYtzy4FXdeM4sjScmUsa881g9eXho0/XbHChb3YB+6x5n9Ye472oKf/Ot1DC0uQHNbFy9cUS9mfeXBgB9nnjAcz73eeyGVYMDPtWyzLFEfOhN6Homf78WIf5gUM3vZGtNzRACMHzEInd1hvNvUxoaAQziXC5m2uoxiw7P5x0lWfeIK4MEvnoNRQ4uzGxCljBdF80Qqc2/w4hYB1n3io4YWMZm7HBN6nkglWQsidewcUZrfzCqlCv0+3Db/ZIciolSxyyVPWFUoGMVmezGOKAXQ56Iqu2W8raoihHBYcVv1NrR1hjEo4EdRwIevPbAZy1fv4jngYmyh5wmzVlesYNFvUrrY2tmNpY+8ilsf2ob6xlYoPkj0bL17m6ri5T1H0NYZRtWscigiC1fwHHA/JvQ8UVURwh1XzkCoNAhBZPj/ndfMwp5llyJsUenU2NrZp9+dc1t7m6pi2RM7cf8r7+DLF0zGK3uO8hzIIexyySNVFSHTr8qpdMcY8eKpd/3m2Tfx2+d347pzJuIbF38Ev36mznQ/ngPuxBY6pTUVKsCRgbmsurYes5etMb34/ce1b0VKV2eVY+ll0yAilu81zwF3YgudUp5+F+Dc1rksfiyC8eL3+22duP2x1zBv2hgs//RM+HyR6yqL5041HTXKc8CdOFKUekk0/W6IVS45zWoEaGkwgMbWTlx08mj85jOnobCg9xd3s+kjeA44hyNFKWVW/emDC/144eYLelpulDsSTfkARC5+XzC1DPOmjcYFP3m2T+K2uvZC7pO0D11ExovIMyKyQ0ReFZGvmuxzvog0icjm6M937AmX7GbWn17gExzv6MZtD29Dd9iZb3TUP7FulkRdaUUFPsyfMRb/9c9XWaKa41JpoXcB+IaqbhKRoQA2ishTqvpa3H4vqOonMx8iZZOxPz3WUvvmxR/BW4eO4641dejoCuPHV5+KAr95W4Bfz90hWas8xifAD6um486n37AsT+T7lzuSJnRV3Q9gf/T2+yKyA0AIQHxCJ4+w+opdd7AZD9XW46HaepSXFOPmeSf12i/RRTcmhexJNhFbTDDgx6cqynHn029YJn6WJ+aWtMoWRWQSgAoAL5lsPkdEtojIEyIyzeLxC0WkRkRqDh48mH605Jjq2no8s/OD96yhqQ03PbAZkwzlb2YTgHEQSvalMhHboEI/flA1HQ/XNiRsxbM8MbeknNBFZAiAlQBuUtVjcZs3AZioqjMB/BJAtdlzqOoKVa1U1cqysrJ+hkxOSJQkYi1xtvLcIdnxLvAJflg1HT976vWEiZ/libknpYQuIgFEkvn/qOpD8dtV9ZiqNkdvrwIQEJGRGY2UHJUsSSRKDGzlZVei4z2suAA/+fRMfOq0cQnf01BpkAue5KBUqlwEwB8A7FDVn1nsMya6H0TkzOjzHs5koOSs/iZltvKyz2rk77VnT8TWpXN7krTVexoqDWLdkjlM5jkolRb6bADXAphjKEucLyKLRGRRdJ+rAWwXkS0A7gKwQJ0asUS2SHd6AICtPKfEJmIrG1IEABABvnLBZHy/anqv/czeU34A57ZUqlzW4oOZVq32+RWAX2UqKHKf+OkBBLAcUQpETph1S+ZkIzQy0RVWNLV2YsKIQfjj9Wdg8qghffYxK1FlmWlu49B/6pdkdc5jS4pxy7yTmCyyqLq2Hj9+cicamtoAAFNGDcHfv3AOhg8udDgyyqREQ/852yL1S1VFCOuWzMHPr5ll2hXT3N6FW1Zu5cjDLKmurceSlVt7kjkAvHOkBc+9zvLgfMKETgNitnDGV+ZMxvH2LrR3hXvty5r0/ks07S0A/ODx19AWd7zbusI83nmGk3PRgJmNLP3lGi6MkCmJRuBeNrMcv33+TRxq7jB9LI93fmFCJ1uELGZtZE16+qxG4C57Yid+9Uwd6g40Wz6Wxzu/MKGTLcwWRgAirctz7/h3n3lgKMI4uVlJMACRyALNZt491gbEj9k2YAli/mFCJ1skWgWpoakNt6zc2ms/IL9majT7vwLo9SHY2GqeyFPBxUjyE8sWyXZWK+UMKy5Azbc/gcICn+kMgcGA33RgUq4nfqv/a3HAZ9kaj1fgE3RZzE0vAN5admkmQiUX4opF5CirC3PH2rrw0R+vQXe34tDxvhf1Wju7cdMDm7F89a6epO2FKXqt+sSTzZAYM7SoAAV+sUz+7DfPXyxbJNslSjDvHWs3TeZGxhp2L0zRO5DKk5LiAnSF1TKZs988vzGhk+36Mw9MvFjStkqGuVCeF6slt+rkLA0GEh6nYMAPn08sW/KcO4eY0Ml2xsFHAxHrMzfj9m6GZGt7BgN+fOeyU7DgjPEoiC7E7fcJhhb5ewZs3XHlDDRatMxjc+cwmec39qFTVsQGH52w5PGEk3olErsAanZB0e3dDIkWCCkvKcYlM8bi9y+8hdf2H8OHywbjG5+YivkzxiA6K3Wv52F9P1lhC52yKlniCQb8+MxZ41Fosgh1fWMrlq/ehatOD/WaaiAXuhkSdQl1q+IPayPJfPigAG44fzIuPXVsn2QOcMpbSowtdMoqsxZ2bCpeY+30GZM+1GvmwJj6xlb8o2YffnTVqRktZ0zlsWaDfhpbOlN6rXKLkbMAcOBYe8/toy2d+Hb1dvh9Yvp8nPKWEmEdOmVdOonXqoa90O/Ddy8/BZfOGIvSQYVp1bGbxZPssWb7GCV7rb+/8g6+Xb0dHd0fTKDlk8hizc3tfZ8ztmoQUbxEdehM6ORqyfrcA37B+VNHoWbPEdNSvlQSo9WHhvGxVvskeq3Wjm789F+78NeX30ZLRyRpiwCqwOhhRbj1kpPxtQc2m/7/ODiIrHBgEeUsq66K8pJirLiuEtW19XhkS4NlXXZ9Yytmfe9fpt0jyRbpaGhsTbpP/Gvtevd9vPjmIaytO4TnXj+Izu7e6brI78MyQ3cRL3JSJrGFTq6WSndIOKw467//jYPN7VZP00sw4MdVp4ewcmN9wtGZpcEA2rvCKY/g9AkQG43v9wm6LYbmG1vyA+kqovzEFjrlrGQXAWMt6IPN7UnXOY1p7ezGXza8nXCfQr8Pnd2pJ3MgksyDAT86u7st51kBele88CInZRITOrme2QIaQN/WrQIpJ/VkOrrD6EiQy4sKfPD7pKdvPCaVD4D47hSr/x9RuliHTjnLbLCOAvCb1G+nqmxIER798nl49MvnYdTQItN9QqVB7PrBJXjt9nlpj35lzTjZiQmdcpbVYJ1u1X7NHRMM+PGtS0/GjHElmDGuBLfNPznpIJ505pDJlUFQlLuSdrmIyHgA9wIYAyAMYIWq/iJuHwHwCwDzAbQAuF5VN2U+XKIPWFXAxAYopbryj/ExxuqX2GOLAz7LAUSJBgzF8CInZUsqfehdAL6hqptEZCiAjSLylKq+ZtjnEgBToj9nAbg7+i+RbRLN62LWL92fAUSNrZ0IBvy485pZpgnZLIaATzCkuCDlUaREmZI0oavqfgD7o7ffF5EdAEIAjAn9CgD3aqQGcoOIlIrI2OhjiWyRboVIKvsnmm+dQ/HJ7dKqchGRSQAqALwUtykE4B3D7/ui9/VK6CKyEMBCAJgwYUKaoRL1lW6FSLL9+zPfOqtUyC1SvigqIkMArARwk6rGrzVuVlbQp3pMVVeoaqWqVpaVlaUXKVEW5Op860RAigldRAKIJPP/UdWHTHbZB2C84fdxABoGHh5RdnF6WsplSRN6tILlDwB2qOrPLHZ7BMB1EnE2gCb2n1MuMq6ulEvzrRMBqfWhzwZwLYBtIrI5et9tACYAgKreA2AVIiWLdYiULX4+45ESZQn7xClXpVLlshbmfeTGfRTADZkKioiI0seRokREHsGETkTkEUzoREQewYROROQRjq1YJCIHAezt58NHAjiUwXAyxa1xAe6NjXGlh3Glx4txTVRV05GZjiX0gRCRGqslmJzk1rgA98bGuNLDuNKTb3Gxy4WIyCOY0ImIPCJXE/oKpwOw4Na4APfGxrjSw7jSk1dx5WQfOhER9ZWrLXQiIorDhE5E5BGuTegi8mkReVVEwiJiWd4jIvNEZJeI1InIEsP9I0TkKRF5I/rv8AzFlfR5RWSqiGw2/BwTkZui25aKSL1h2/xsxRXdb4+IbIu+dk26j7cjLhEZLyLPiMiO6Hv+VcO2jB4vq/PFsF1E5K7o9q0iclqqj7U5rs9E49kqIutFZKZhm+l7mqW4zheRJsP7851UH2tzXIsNMW0XkW4RGRHdZufx+qOIHBCR7Rbb7T2/VNWVPwBOBjAVwLMAKi328QN4E8CHARQC2ALglOi2HwNYEr29BMCPMhRXWs8bjfFdRAYDAMBSAN+04XilFBeAPQBGDvT/lcm4AIwFcFr09lAArxvex4wdr0Tni2Gf+QCeQGSG0bMBvJTqY22O61wAw6O3L4nFleg9zVJc5wN4rD+PtTOuuP0vA7DG7uMVfe6PATgNwHaL7baeX65toavqDlXdlWS3MwHUqepuVe0AcD8iC1Yj+u+fo7f/DKAqQ6Gl+7wXAnhTVfs7KjZVA/3/Ona8VHW/qm6K3n4fQGwh8kxLdL4Y471XIzYAKBWRsSk+1ra4VHW9qh6N/roBkVXB7DaQ/7OjxyvO/wbwtwy9dkKq+jyAIwl2sfX8cm1CT5HV4tQAMFqjqyZF/x2VoddM93kXoO/J9OXo160/ZqprI424FMC/RGSjRBbtTvfxdsUFwHIh8kwdr0TnS7J9UnmsnXEZ/ScirbwYq/c0W3GdIyJbROQJEZmW5mPtjAsiMgjAPESW0Iyx63ilwtbzK5UVi2wjIk8DGGOy6Vuq+s9UnsLkvgHXYSaKK83nKQRwOYBbDXffDeD7iMT5fQA/BfB/shjXbFVtEJFRAJ4SkZ3RVkW/ZfB4mS1E3u/jZfYSJvfFny9W+9hyriV5zb47ilyASEI/z3B3xt/TNOLahEh3YnP0+kY1gCkpPtbOuGIuA7BOVY2tZruOVypsPb8cTeiqetEAnyLR4tTvichYVd0f/UpzIBNxiUg6z3sJgE2q+p7huXtui8jvADyWzbhUtSH67wEReRiRr3rPw+HjJRYLkQ/keJlIZTFzq30KU3isnXFBRE4F8HsAl6jq4dj9Cd5T2+MyfPBCVVeJyG9EZGQqj7UzLoM+35BtPF6psPX8yvUul1cATBGRE6Kt4QWILFiN6L+fi97+HIBUWvypSOd5+/TdRZNazKcAmF4NtyMuERksIkNjtwFcbHh9x46XiPVC5Bk+XonOF2O8Zguep/JY2+ISkQkAHgJwraq+brg/0XuajbjGRN8/iMiZiOSUw6k81s64ovGUAPg4DOeczccrFfaeX3Zc6c3EDyJ/vPsAtAN4D8Dq6P3lAFYZ9puPSFXEm4h01cTu/xCAfwN4I/rviAzFZfq8JnENQuTELol7/H0AtgHYGn3DxmYrLkSuoG+J/rzqluOFSPeBRo/J5ujPfDuOl9n5AmARgEXR2wLg19Ht22CosLI61zJ0nJLF9XsARw3HpybZe5qluL4cfd0tiFysPdcNxyv6+/UA7o97nN3H628A9gPoRCR//Wc2zy8O/Sci8ohc73IhIqIoJnQiIo9gQici8ggmdCIij2BCJyLyCCZ0IiKPYEInIvKI/w+VZnziAs4pHwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(x.numpy(),y_pred.detach().numpy())\n",
    "plt.scatter(x.numpy(),y.numpy())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(range(801),all_loss_torch)\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
